www.gusucode.com > VANET Toolbox- A Vehicular Network Simulator based on DES 程序工具箱matlab源码 > VANET Toolbox- A Vehicular Network Simulator based on DES/VANET_Toolbox/VANET_Toolbox_multiChannel_2018b/simLC.m
function simLC(varargin) % simLC(numVehicle/speedArray,simTime, laneChangingOption, isappTXTon) simTime=varargin{2}; assignin('base','simTime',simTime); if numel(varargin{1})==1 numVehicles=max(4,varargin{1}); else numVehicles=numel(varargin{1}); speedArray=varargin{1}; end assignin('base','numStations',numVehicles); if nargin>2 switch varargin{3} case 'per' laneChangingOption='Performance Lane Changing'; case 'con' laneChangingOption='Conservative Lane Changing'; otherwise laneChangingOption='Brake without Lane Changing'; end else laneChangingOption='Brake without Lane Changing'; end if nargin==4 isUIon=varargin{4}; else isUIon=0; end % laneChangingOption='Performance Lane Changing'; % speedArray=fcn_generateSpeedArray(numVehicles,70,5); vehicle=struct(... 'PositionX',0,... 'PositionY',0,... 'Speed',50,... 'Acceleration',10,... 'VehicleID',1,... 'lane',1); vanet=struct(... 'vehicles',[],... 'txtEnable',0,... 'appTXTEnable',0); n = vanet; %% Create a model h=new_system; try set_param(h,'StopTime',num2str(simTime)); mdl=get_param(h,'Name'); add_block('VANETlib/Control Panel', [mdl '/controlPanel'], ... 'txtEnable',n.txtEnable,... 'appTXTEnable',n.appTXTEnable,... 'isUIon',isUIon,... 'road','highway',... 'roadLength','1680',... 'laneChangingOption',laneChangingOption); add_block('VANETlib/vanet PHY layer', [mdl '/VANET'], ... 'numStations', num2str(numVehicles)); posX=680:-20:0; for i=1:numVehicles car=vehicle; switch i case 1 car.Speed=80; car.PositionX=740; car.PositionY=0; case 2 car.Speed=50; car.PositionX=780; car.PositionY=0; case 3 car.Speed=90; car.PositionX=700; car.PositionY=4; case 4 car.Speed=60; car.PositionX=800; car.PositionY=4; otherwise if numel(varargin{1})>1 car.Speed=speedArray(i); end car.PositionX=posX(i-4); car.PositionY=mod(i,2)*4; end add_block('VANETlib/Vehicle', [mdl '/Car' num2str(i)], ... 'carID', num2str(i), ... 'startSpd',num2str(car.Speed),... 'startAcc',num2str(car.Acceleration),... 'initLane',num2str(car.lane),... 'startPosX',num2str(car.PositionX),... 'startPosY',num2str(car.PositionY)); end stopfcn=strcat("fcn_stopfcnList(", num2str(numVehicles),',', num2str(simTime),');'); set_param(mdl,'StopFcn',stopfcn); vanet_init(); sim(mdl); close_system(mdl,0); bdclose; catch e close_system(mdl,0); rethrow(e); end end